# Create your views here.
from django.contrib.auth.decorators import login_required, user_passes_test
from django.shortcuts import render_to_response, get_object_or_404
from django.views.generic.create_update import update_object, create_object, \
    delete_object
from django.views.generic.list_detail import object_list, object_detail
from estados_de_proyecto.models import EstadoProyecto
from usuarios.permisos import es_del_grupo_de_expertos, es_del_grupo_de_admins




def listar(request):    #seria la pagina de inicio para las proyectos
    return object_list(request,
                       queryset = EstadoProyecto.objects.all(),
                       allow_empty = True,
                       template_name = 'estados_de_proyecto/listar.html'
                       )

@login_required
def ver(request, object_id):
    get_object_or_404(EstadoProyecto, pk=object_id)
    return object_detail(request,
                         queryset = EstadoProyecto.objects.all(),
                         template_object_name =  "Estados",
                         template_name = 'estados_de_proyecto/detalle.html',
                         object_id = object_id
                         ) 
        
@login_required
@user_passes_test(es_del_grupo_de_admins,login_url='/accounts/signin/no_admin')
def crear(request):
    return create_object(request,
                         model = EstadoProyecto, 
                         template_name = 'estados_de_proyecto/crear.html', 
                         post_save_redirect = '/proyectos/estados/'
                         ) 
    
    
@login_required
@user_passes_test(es_del_grupo_de_admins,login_url='/accounts/signin/no_admin')
def editar(request, object_id):
    get_object_or_404(EstadoProyecto, pk=object_id)
    return update_object(request,
                         model = EstadoProyecto, 
                         template_name = 'estados_de_proyecto/editar.html', 
                         post_save_redirect = '/proyectos/estados/' + object_id,
                         object_id = object_id
                         )


@login_required
@user_passes_test(es_del_grupo_de_admins,login_url='/accounts/signin/no_admin')
def eliminar(request, object_id):
    get_object_or_404(EstadoProyecto, pk=object_id)
    return delete_object(request,
                         model = EstadoProyecto, 
                         template_name = 'estados_de_proyecto/confirmar_eliminar.html', 
                         post_delete_redirect = '/proyectos/estados/',
                         object_id = object_id
                         )
